Skip to content

Conversation

jhpratt
Copy link
Member

@jhpratt jhpratt commented Aug 21, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

fee1-dead and others added 30 commits July 3, 2025 23:43
Add a few links to the collections mentioned in the module doc for Collections.
Just like we implemented relatively complex rules to imply other extensions
**from** "C" (and some others), this commit implements implication
**to** the "C" extension from others, complying the following text
in the ISA Manual (although there's no direct imply/depend references).

> The C extension is the superset of the following extensions:
>
> - Zca
> - Zcf if F is specified (RV32 only)
> - Zcd if D is specified

This is formally verified so that no other extension combinations
(*not* in this implementation) can (currently) imply the "C" extension.
`ModKind::Loaded` has an `inline` field and a `had_parse_error` field.
If the `inline` field is `Inline::Yes` then `had_parse_error` must be
`Ok(())`.

This commit moves the `had_parse_error` field into the `Inline::No`
variant. This makes it impossible to create the nonsensical combination
of `inline == Inline::Yes` and `had_parse_error = Err(_)`.
…egen-backend` and `--override-codegen-backend`
…t while proving a where-clause

Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
The return type is correct in the source code but incorrect in the docstring
`rustc_errors` depends on numerous crates, solely to implement its
`IntoDiagArg` trait on types from those crates. Many crates depend on
`rustc_errors`, and it's on the critical path.

We can't swap things around to make all of those crates depend on
`rustc_errors` instead, because `rustc_errors` would end up in
dependency cycles.

Instead, move `IntoDiagArg` into `rustc_error_messages`, which has far
fewer dependencies, and then have most of these crates depend on
`rustc_error_messages`.

This allows `rustc_errors` to drop dependencies on several crates,
including the large `rustc_target`.

(This doesn't fully reduce dependency chains yet, as `rustc_errors`
still depends on `rustc_hir` which depends on `rustc_target`. That will
get fixed in a subsequent commit.)
Some crates depend on `rustc_hir` but only want `HirId` and similar id
types. `rustc_hir` is a heavy dependency, since it pulls in
`rustc_target`. Split these types out into their own crate
`rustc_hir_id`.

This allows `rustc_errors` to drop its direct dependency on `rustc_hir`.

(`rustc_errors` still depends on `rustc_hir` indirectly through
`rustc_lint_defs`; a subsequent commit will fix that.)
`rustc_lint_defs` uses `rustc_hir` solely for the `Namespace` type,
which it only needs the static description from. Use the static
description directly, to eliminate the dependency on `rustc_hir`.

This reduces a long dependency chain:
- Many things depend on `rustc_errors`
- `rustc_errors` depends on `rustc_lint_defs`
- `rustc_lint_defs` depended on `rustc_hir` prior to this commit
- `rustc_hir` depends on `rustc_target`
…hir`

`rustc_mir_dataflow` only uses `DefId`, which is a re-export from
`rustc_span`.
`rustc_traits` only uses `DefId`, which is a re-export from
`rustc_span`.
…y, r=dtolnay

stabilize `const_array_each_ref`

cc rust-lang#133289, needs FCP.
[Doc] Add links to the various collections

Add a few links to the collections mentioned in the module doc for Collections.
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-rustdoc-search Area: Rustdoc's search feature A-testsuite Area: The testsuite used to check the correctness of rustc A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic F-explicit_tail_calls `#![feature(explicit_tail_calls)]` S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-release Relevant to the release subteam, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. labels Aug 21, 2025
@jhpratt
Copy link
Member Author

jhpratt commented Aug 21, 2025

@bors r+ rollup=never p=5

@rustbot rustbot added the rollup A PR which is a rollup label Aug 21, 2025
@bors
Copy link
Collaborator

bors commented Aug 21, 2025

📌 Commit d533ada has been approved by jhpratt

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 21, 2025
@jhpratt
Copy link
Member Author

jhpratt commented Aug 21, 2025

Given the other failed rollups, let's try this one while the previous is being built.

@bors2 try jobs=test-various

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Aug 21, 2025
Rollup of 20 pull requests

try-job: test-various
@rust-log-analyzer
Copy link
Collaborator

The job test-various failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test [codegen] tests/codegen-llvm/zip.rs ... ok

failures:

---- [codegen] tests/codegen-llvm/issues/cows-dont-have-branches-117763.rs stdout ----

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/issues/cows-dont-have-branches-117763/cows-dont-have-branches-117763.ll" "/checkout/tests/codegen-llvm/issues/cows-dont-have-branches-117763.rs" "--check-prefix=CHECK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/codegen-llvm/issues/cows-dont-have-branches-117763.rs:13:12: error: CHECK: expected string not found in input
 // CHECK: ret { ptr, i64 }
           ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/issues/cows-dont-have-branches-117763/cows-dont-have-branches-117763.ll:7:53: note: scanning from here
define dso_local { ptr, i32 } @branchless_cow_slices(ptr noalias noundef readonly align 4 captures(none) dereferenceable(12) %cow) unnamed_addr #0 {
                                                    ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/issues/cows-dont-have-branches-117763/cows-dont-have-branches-117763.ll:15:2: note: possible intended match here
 ret { ptr, i32 } %1
 ^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/issues/cows-dont-have-branches-117763/cows-dont-have-branches-117763.ll
Check file: /checkout/tests/codegen-llvm/issues/cows-dont-have-branches-117763.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1: ; ModuleID = 'cows_dont_have_branches_117763.12ccc2b468a22eea-cgu.0' 
            2: source_filename = "cows_dont_have_branches_117763.12ccc2b468a22eea-cgu.0" 
            3: target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-i128:128-n32:64-S128-ni:1:10:20" 
            4: target triple = "wasm32-unknown-wasip1" 
            5:  
            6: ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) 
            7: define dso_local { ptr, i32 } @branchless_cow_slices(ptr noalias noundef readonly align 4 captures(none) dereferenceable(12) %cow) unnamed_addr #0 { 
check:13'0                                                         X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
            8: start: 
check:13'0     ~~~~~~~
            9:  %_2.sroa.0.0.in = getelementptr inbounds nuw i8, ptr %cow, i32 4 
check:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           10:  %_2.sroa.0.0 = load ptr, ptr %_2.sroa.0.0.in, align 4, !nonnull !1, !noundef !1 
check:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           11:  %_2.sroa.5.0.in = getelementptr inbounds nuw i8, ptr %cow, i32 8 
check:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           12:  %_2.sroa.5.0 = load i32, ptr %_2.sroa.5.0.in, align 4, !noundef !1 
check:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           13:  %0 = insertvalue { ptr, i32 } poison, ptr %_2.sroa.0.0, 0 
check:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           14:  %1 = insertvalue { ptr, i32 } %0, i32 %_2.sroa.5.0, 1 
check:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           15:  ret { ptr, i32 } %1 
check:13'0     ~~~~~~~~~~~~~~~~~~~~~
check:13'1      ?                    possible intended match
           16: } 
check:13'0     ~~
           17:  
check:13'0     ~
           18: attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) "target-cpu"="generic" } 
check:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           19:  
check:13'0     ~
           20: !llvm.ident = !{!0} 
check:13'0     ~~~~~~~~~~~~~~~~~~~~
           21:  
check:13'0     ~
           22: !0 = !{!"rustc version 1.91.0-nightly (5c606e5b6 2025-08-21)"} 
check:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           23: !1 = !{} 
check:13'0     ~~~~~~~~~
>>>>>>
------------------------------------------



@rust-bors
Copy link

rust-bors bot commented Aug 21, 2025

💔 Test for 5c606e5 failed: CI. Failed jobs:

@jhpratt jhpratt closed this Aug 21, 2025
@jhpratt jhpratt deleted the rollup-586qjhb branch August 21, 2025 05:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-rustdoc-search Area: Rustdoc's search feature A-testsuite Area: The testsuite used to check the correctness of rustc A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic F-explicit_tail_calls `#![feature(explicit_tail_calls)]` rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-release Relevant to the release subteam, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.